package com.kingoe.mybatisdj.shard.interceptor;

import org.apache.commons.lang3.StringUtils;

/**
 * 自定义分表策略接口
 * @desc 分表策略接口
 * @author jinwu
 */
public interface ITableShardStrategy {

    /**
     * 生成分表名
     * @param tableNamePrefix 表前缀名
     * @param value 生成分表名的逻辑参数
     * @return: java.lang.String
     */
    String generateTableName(String tableNamePrefix,Object value);

    /**
     * 验证tableNamePrefix
     * @param tableNamePrefix table
     */
    default void verificationTableNamePrefix(String tableNamePrefix){
        if (StringUtils.isBlank(tableNamePrefix)) {
            throw new RuntimeException("tableNamePrefix is null");
        }
    }

}
